The rapid growth of computer networking capabilities has led to the widespread implementation of multi-user computer systems wherein data from various sources is stored in databases distributed throughout the system. Such distributed database environments may result from the use of multiple file servers on a network of hosts, workstations, or user terminals. They may also result from the networking of multiple, disparate host computer systems, where each host computer may have different operating system capabilities, applications software, and data file formats.
In a multi-user environment where data records are to be created and shared among numerous users, data records are constantly being created by different users and stored in one or more of the computer system's databases. In a data-intensive environment, hundreds or thousands of separate data records may be created and stored in a single working day. Unless there is a comprehensive, uniform addressing scheme in place for ensuring that each user who creates a data record stores the record in a place on the system (e.g., database, directory and file name) where other users can readily locate the record, the location of the data records will rapidly become randomized so that no user can find the data records created by himself or others.
A typical example of such a computer system appears in hospitals, where often many disparate computer systems are employed to create and store different types of patient data in the format of patient reports or observations. Conventionally, patient admission data (name, address, insurance information, doctor, etc.) is entered and stored on a mainframe computer. During the patient's stay, other medical records for the patient are created and stored on databases at other locations in the hospital. For example, X-ray data may be stored as an image file on a computer and associated database in the Radiology Lab, nurses reports on the patient may be created and stored on still another database, and data reflecting the output of patient monitoring devices or electrocardiographs may be stored on still other databases. Each patient data record or report is typically created and stored by hospital personnel who have little or no knowledge of the characteristics of the databases other than the one with which he or she usually works, and thus most personnel do not know how to access a particular patient's numerous medical data records throughout the various computer systems in the hospital. Often, the various computer systems are not even linked, since it would be of little use for a nurse to have access to the Radiology Lab computer if he or she does not know how to locate data records on the Radiology Lab's computer.
It is known to link such disparate computer systems together and employ a standardized addressing scheme (e.g., file naming convention and predetermined directory structure) so that all patient data records are stored at a predetermined location upon their creation. However, this requires that all hospital personnel learn the addressing scheme and correctly apply it every time a report is created. But when the number of disparate computer systems to be linked and the number of different type of patient data reports becomes even moderately large, it becomes impractical for personnel to remember and correctly apply the attendant addressing scheme. And although the difficulty of recalling a complex standardized addressing scheme need be overcome only once for creating and storing a data record, it is encountered repeatedly thereafter by users who are attempting to retrieve the particular data record.
It is also known to use a software-based search engine to locate the desired data record on a distributed database system having numerous such records. Such search tools may search only specific fields in the target data records, or they may perform full-text Boolean searching based on keywords entered by the user. The use of such search engines for data retrieval suffers from numerous disadvantages. They can be slow, particularly where the number of stored data records to be searched is large. In addition, full-text searching requires periodic, time consuming, computationally intensive software indexing of all data records, and this index information requires memory storage which may approach the size of the data records themselves. Moreover, search tools only aid in the retrieval of desired data records; they do not aid in the orderly storage of newly-created data records. Nor do they permit a user creating a first data record to conveniently reference in that record a second, different data record so that the reader of the first data record can readily find the referenced record when reading the first data record.
Although the use of search engines has the disadvantages described, their focus on the use of "keywords" has the advantage of allowing users without significant computer skills to locate data records using just a few words which are likely to be, either alone or in combination with each other, peculiar to the data record sought. The use of keywords may be particularly advantageous where numerous specialized computer databases are linked together, such as in the hospital environment. In the example given above, the desired patient medical data record can often be uniquely identified by just a few keywords. Typically, what is sought to be retrieved is a particular type of report on a particular patient on a particular date, and this report can often thus be identified using three keywords designating these three criteria.
One technique for using keywords has become commonplace on the global computer network known as the Internet. Stored on database/servers on the Internet are thousands of data records which contain references to still other data records in the form of textual or graphic "hypertext links." These hypertext links are merely associations between keywords in a data file and an address pointer which points to another data record, or file. The keyword and address pointer combinations are created by the use of software packages that convert standard word processing files to files in the well-known Hypertext Markup Language (HTML). Upon viewing a file in HTML format with a "browser" software package, a user can readily identify the keywords and graphic images which point to another file on the Internet, i.e., constitute a hypertext link. When these hypertext links are selected by the user, the browser software receives the Internet address of the file referenced by the chosen keyword, and that file is opened for viewing by the user. In this way, users can readily access other referenced files without knowing their location on the Internet. Likewise, one who is creating a particular data record can store it at a predetermined address and reference it in other data records by the use of hypertext links which point to the address of the data record referred to.
The storage and retrieval of files on the Internet using hypertext links has several disadvantages, however. First, there is virtually no standardization to the addressing of files created and stored by the millions of users. Thus, even if user A knows that user B will create a particular type of file and store it for access by others, A has no idea what address that file will be stored at. Consequently, user A cannot create his data records with hypertext links to user B's records in advance. And even if user A can wait until after user B's file is stored and made available, A cannot create his hypertext links without first learning where B's file is stored.
Second, even if a standardized addressing scheme existed, all of the hypertext links would still have to be constructed individually, with the file address pointers entered manually when hypertext links are created using HTML conversion packages. The attendant margin for human error in establishing the hypertext links is large.
What is needed is a computer system which permits both the storage and the retrieval of data records according to a standardized addressing scheme which can be determined solely by the use of certain keywords known to the various users of the system. Such a system could employ standard word processing software to enable multiple users to create and reference the various data records. The system would recognize certain keywords entered by the user during creation of the data record and use those keywords to determine the appropriate location (e.g., database, directory and file name) to store the record according to a predetermined addressing scheme. Similarly, it is desirable for the users of the system to be able to locate particular data records using a few keywords without having to know the complexities of which database the record is on, the format of the record, the file name or the directory address.